const TerserPlugin=require('terser-webpack-plugin')
const path=require('path')
function resolve (dir) {
    return path.join(__dirname, dir)
}


module.exports = {
	publicPath:"./",
	outputDir:process.env.OUTPUTDIR || 'dist',
	lintOnSave:false,
	productionSourceMap:false,
	css: {
	    requireModuleExtension: true
	},
	devServer:{
		open: true,
		host:"0.0.0.0",
		//port:"8090",
		// proxy:{
		// 	//本地匹配到(包含)'/api'的请求地址
		// 	'/api': {
		// 		//代理到的真实(目标)地址(host)
		// 		target: 'http://www.host.com',
		// 		//将本地的'/api'代理到真实地址时替换为空
		// 		pathRewrite: {'^/api' : ''}
		// 	 }
		// }
	},
	configureWebpack:config=>{
		config.externals={
			//vue是不会经常变化的文件，所以可以使用静态，发挥缓存的作用
			vue:"Vue",
			axios:"axios"
		};
		config.optimization.minimize=true;
		config.optimization.minimizer=[
			new TerserPlugin({
				//是否将js文件中的注释提取到单独的文件中;如果为true(默认值是true)会在打包后的js文件同目录生成.js.LICENSE文件
				extractComments: false,
				terserOptions: {
					  compress: {
						//删除代码中的console.log,这里使用了自己编写的loader
						drop_console: true
					  },
					  output: {
						//是否保留代码中的注释
						comments: false,
					  },
				}
			})
		]
	},
	chainWebpack: config => {
	    config
	      .plugin('html')
	      .tap(args => {
			 args[0].title=process.env.PAGETITLE
			 args[0].noCompile={
				 data:[],//[`data-js/${process.env.DATASRC}.js`]
				 //js:["https://cdn.bootcss.com/axios/0.19.2/axios.min.js","https://cdn.jsdelivr.net/npm/vue"],
				 js:["https://cdn.bootcss.com/axios/0.19.2/axios.min.js","no-compile-js/md5.min.js","no-compile-js/vue.min.js"],
				 css:["no-compile-css/public.css","no-compile-css/layui.css"]
			 }
	         return args
	      })
		config.resolve.alias
		  .set('~css', resolve('./src/assets/css'))
		  .set('~imgs', resolve('./src/assets/imgs'))
		  .set('~js', resolve('./src/assets/js'))
	  }
}